<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        ul {
            width: 300px;
            border: 1px dashed #f0f;
            margin: 50px auto;
            font-size: 24px;
            line-height: 48px;
            list-style: none;
        }
        li {
            padding-left: 20px;
            cursor: pointer;
        }

    </style>
</head>

<body>
    <ul id="list">
        <li>刘亦菲</li>
        <li>杨幂</li>
        <li>唐嫣</li>
        <li>赵丽颖</li>
        <li>刘诗诗</li>
    </ul>
    <script>
        // 获取元素
        var list = document.getElementById("list");
        // 获取子元素节点
        var lis = list.children; 


        
        // 利用排他思想制作
        // for(var i = 0;i< lis.length;i++){
        //     lis[i].onclick=function(){
        //         for(var j = 0;j< lis.length;j++){
        //             lis[j].style.backgroundColor ="";
        //         }
        //         this.style.backgroundColor="pink";
        //     }
        // }




        // 利用事件委托的冒泡性质事件委托：
        // 可以将一些子级的公共类型的事件委托给他们的父级添加，
        // 在父级内部想办法找到真正触发事件的最底层的事件源
        // 给父级添加点击事件，点击自己时（没有自己点击的函数事件,所以先向上冒泡，因此就会让父级的函数执行)
        // 父级函数执行:其他元素背景颜色为默认，触发的事件源的背景颜色变为函数里设置的颜色
        list.onclick = function (e){
            e = e || window.Event;
             // 排除其他
            for(var j = 0;j< lis.length;j++){
                lis[j].style.backgroundColor ="";
            }
             // e.target 属性记录的就是真正触发事件的事件源
            e.target.style.backgroundColor="pink";
        }


    </script>
</body>

</html>